library(tidyverse)
library(patchwork)
library(plotly)
knitr::opts_chunk$set(
fig.width = 6,
fig.asp = .6,
out.width = "90%"
)
theme_set(theme_minimal() + theme(legend.position = "bottom"))
options(
ggplot2.continuous.colour = "viridis",
ggplot2.continuous.fill = "viridis"
)
scale_colour_discrete = scale_colour_viridis_d
scale_fill_discrete = scale_fill_viridis_d
The date 12/14/20 was used as the date when vaccines became available in the U.S. Date was converted to “day of pandemic” in order to do regression on a numeric variable instead of YYYY-MM-DD.
us_covid = read_csv("./data/us.csv") %>%
mutate(day = 1:685,
dc_ratio = deaths/cases)
total_ratio_p =
us_covid %>%
ggplot(aes(x = day, y = dc_ratio)) +
geom_line() +
labs(title = "U.S. Death to Cases Ratio from 1/21/20 to 12/05/21",
x = "Day", y = "Ratio") +
geom_vline(xintercept = 329, linetype="solid",
color = "red", size=0.5)
pre_vacc_ratio_p =
us_covid %>%
slice(1:328) %>%
ggplot(aes(x = day, y = dc_ratio)) +
geom_line() +
labs(title = "1/21/20 to 12/13/20 (Pre-Vaccine)",
x = "Day", y = "Ratio") +
theme(plot.title = element_text(size=10))
post_vacc_ratio_p =
us_covid %>%
slice(329:685) %>%
ggplot(aes(x = day, y = dc_ratio)) +
geom_line() +
labs(title = "12/14/20 to 12/05/21 (Post-Vaccine)",
x = "Day", y = "Ratio") +
theme(plot.title = element_text(size=10))
total_ratio_p / (pre_vacc_ratio_p + post_vacc_ratio_p)

total_us_case_lm =
lm(cases ~ day, data = us_covid) %>%
broom::tidy()
total_us_case_p =
us_covid %>%
ggplot(aes(x = day, y = cases)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x) +
labs(title = "U.S. COVID-19 Cases from 1/21/20 to 12/05/21",
x = "Day", y = "Cases")
pre_vacc_case_lm =
us_covid %>%
slice(1:328) %>%
lm(cases ~ day, data = .) %>%
broom::tidy()
pre_vacc_case_p =
us_covid %>%
slice(1:328) %>%
ggplot(aes(x = day, y = cases)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x) +
labs(title = "1/21/20 to 12/13/20 (Pre-Vaccine)",
x = "Day", y = "Cases") +
theme(plot.title = element_text(size=10))
post_vacc_case_lm =
us_covid %>%
slice(329:685) %>%
lm(cases ~ day, data = .) %>%
broom::tidy()
post_vacc_case_p =
us_covid %>%
slice(329:685) %>%
ggplot(aes(x = day, y = cases)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x) +
labs(title = "12/14/20 to 12/05/21 (Post-Vaccine)",
x = "Day", y = "Cases") +
theme(plot.title = element_text(size=10))
total_us_case_p / (pre_vacc_case_p + post_vacc_case_p)

total_us_death_lm =
lm(deaths ~ day, data = us_covid) %>%
broom::tidy()
total_us_death_p =
us_covid %>%
ggplot(aes(x = day, y = deaths)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x) +
labs(title = "U.S. COVID-19 Deaths from 1/21/20 to 12/05/21",
x = "Day", y = "Deaths")
pre_vacc_death_lm =
us_covid %>%
slice(1:328) %>%
lm(deaths ~ day, data = .) %>%
broom::tidy()
pre_vacc_death_p =
us_covid %>%
slice(1:328) %>%
ggplot(aes(x = day, y = deaths)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x) +
labs(title = "1/21/20 to 12/13/20 (Pre-Vaccine)",
x = "Day", y = "Deaths") +
theme(plot.title = element_text(size=10))
post_vacc_death_lm =
us_covid %>%
slice(329:685) %>%
lm(deaths ~ day, data = .) %>%
broom::tidy()
post_vacc_death_p =
us_covid %>%
slice(329:685) %>%
ggplot(aes(x = day, y = deaths)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x) +
labs(title = "12/14/20 to 12/05/21 (Post-Vaccine)",
x = "Day", y = "Deaths") +
theme(plot.title = element_text(size=10))
total_us_death_p / (pre_vacc_death_p + post_vacc_death_p)

tibble(
metric = c("intercept", "slope"),
total_case = pull(total_us_case_lm, estimate),
pre_vacc_case = pull(pre_vacc_case_lm, estimate),
post_vacc_case = pull(post_vacc_case_lm, estimate),
total_death = pull(total_us_death_lm, estimate),
pre_vacc_death = pull(pre_vacc_death_lm, estimate),
post_vacc_death = pull(post_vacc_death_lm, estimate)) %>%
knitr::kable()
| metric | total_case | pre_vacc_case | post_vacc_case | total_death | pre_vacc_death | post_vacc_death |
|---|---|---|---|---|---|---|
| intercept | -7794675.04 | -2661121.00 | -3491838.72 | -70361.639 | -32873.6457 | 33469.235 |
| slope | 80715.65 | 42073.19 | 74445.31 | 1266.709 | 952.0364 | 1087.785 |
U.S. Post-vax/Pre-vax Case Ratio: 1.7694241 \(\\\) U.S. State Post-vax/Pre-vax Death Ratio: 1.1425874
states = read_csv("./data/us-states.csv") %>%
mutate(dc_ratio = deaths/cases)
all_states_cases =
states %>%
ggplot(aes(x = date, y = cases, color = state)) +
geom_path() +
labs(title = "Cumulative Cases by State",
x = "Date",
y = "Cases")
ggplotly(all_states_cases)
all_states_deaths =
states %>%
ggplot(aes(x = date, y = deaths, color = state)) +
geom_path() +
labs(title = "Cumulative Deaths by State",
x = "Date",
y = "Cases")
ggplotly(all_states_deaths)
all_states_dc_ratio =
states %>%
ggplot(aes(x = date, y = dc_ratio, color = state)) +
geom_path() +
labs(title = "Deaths/Cases Ratio by State",
x = "Date",
y = "Deaths/Cases Ratio")
ggplotly(all_states_dc_ratio)